const MAX_WORDS_NUM = 140; // 输入文字最大个数
const MAX_IMG_NUM = 9; // 最大上传图片数量
let userInfo = {};
let content = "";
const db = wx.cloud.database();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    num: 0,
    footerBottom: 0,
    images: [], // 已经选择的图片
    selectPhoto: true, // 添加图片元素是否显示
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    userInfo = options;
    // console.log(userInfo);
  },

  // 发布
  send() {
    if (content.trim() == "") {
      wx.showModal({
        title: '请输入内容',
        content: '',
      });
      return;
    }

    wx.showLoading({
      title: '发布中...',
    });

    let promiseArr = [];
    let fileIds = [];
    // 图片上传（云端上传）每次只能上传一张图片
    for (let i = 0; i < this.data.images.length; i++) {
      let P = new Promise((resolve, reject) => {
        let item = this.data.images[i];
        // 获取后缀
        let suffix = /\.\w+$/.exec(item)[0];
        wx.cloud.uploadFile({
          cloudPath: "blog2/" + Date.now() + "_" + Math.random() * 10000000 + suffix,
          filePath: item,
          success: (res) => {
            // console.log(res);
            fileIds = fileIds.concat(res.fileID);
            resolve();
          },
          fail: (err) => {
            console.error(err);
            reject();
          }
        });
      });
      promiseArr.push(P);
    }

    // 将数据存入云端
    Promise.all(promiseArr).then((res) => {
      db.collection("blog2").add({ // 会自带openid属性
        data: {
          ...userInfo,
          content,
          img: fileIds,
          createTime: db.serverDate() // 服务端的时间
        }
      }).then((res) => {
        wx.hideLoading();
        wx.showToast({
          title: '发布成功',
        });

        wx.navigateBack();
        const pages = getCurrentPages();
        // 取到上一个页面
        const prevPage = pages[pages.length - 2];
        prevPage.onPullDownRefresh();

      }).catch((err) => {
        wx.hideLoading();
        wx.showToast({
          title: '发布失败',
        });
      });
    });

  },

  // 选择图片
  onChooseImage() {
    let max = MAX_IMG_NUM - this.data.images.length;
    wx.chooseImage({
      count: max,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        this.setData({
          images: this.data.images.concat(res.tempFilePaths)
        });
        max = MAX_IMG_NUM - this.data.images.length;
        this.setData({
          selectPhoto: max <= 0 ? false : true
        });
      },
    })
  },

  // 删除图片
  onDelImage(e) {
    // console.log(e);
    let index = e.currentTarget.dataset.index;
    this.data.images.splice(index, 1);
    this.setData({
      images: this.data.images
    });
    if (this.data.images.length == MAX_IMG_NUM - 1) {
      this.setData({
        selectPhoto: true
      });
    }
  },

  // 预览图像
  onPreviewImage(e) {
    // console.log(e);
    let img = e.currentTarget.dataset.img;
    wx.previewImage({
      current: img,
      urls: this.data.images,
    });
  },

  onInput(e) {
    // console.log(e);
    content = e.detail.value;
    let num = e.detail.value.length;
    if (num >= MAX_WORDS_NUM) {
      num = `最大字数为${MAX_WORDS_NUM}`;
    }
    this.setData({
      num
    });
  },

  onFocus(e) {
    // console.log(e);
    this.setData({
      footerBottom: e.detail.height
    });
  },

  onBlur() {
    this.setData({
      footerBottom: 0
    });
  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})